<script setup lang="ts">
import HelloWorld from './components/HelloWorld.vue'
</script>

<template>
  <div>
      <router-view v-slot="{ Component, route }">
          <transition name="animation" mode="out-in">
              <component :is="Component" :key="route.path" />
          </transition>
      </router-view>

    <a href="https://vite.dev" target="_blank">
      <img src="/vite.svg" class="logo" alt="Vite logo" />
    </a>
    <a href="https://vuejs.org/" target="_blank">
      <img src="./assets/vue.svg" class="logo vue" alt="Vue logo" />
    </a>
  </div>
  <HelloWorld msg="Vite + Vue" />
</template>

<style lang="scss" scoped>
.logo {
  height: 6em;
  padding: 1.5em;
  will-change: filter;
  transition: filter 300ms;
}
.logo:hover {
  filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.vue:hover {
  filter: drop-shadow(0 0 2em #42b883aa);
}

/* 过度动画配置代码 */
.animation-enter-from,
.animation-leave-to {
    transform: translateX(20px);
    opacity: 0;
}
.animation-enter-to,
.animation-leave-from {
    opacity: 1;
}
.animation-enter-active {
    transition: all 0.7s ease;
}
.animation-leave-active {
    transition: all 0.3s cubic-bezier(1, 0.6, 0.6, 1);
}

</style>
